package com.example.demo.Service;

import com.example.demo.Entity.CurrentStorage;
import com.example.demo.Entity.Item;
import com.example.demo.Entity.User;

import java.lang.reflect.Type;
import java.util.Map;
import java.util.Optional;

import java.util.List;


public interface ItemService {

    // 创建一个新的 Item
    Item createItem(Item item);

    // 通过 ID 获取 Item
    Optional<Item> getItemById(Long id);

    //通过Name获取Item
    Optional<Item> getItemByName(String name);

    //通过物品找到该物品在各个仓库的分布情况
    public Map<String, Object> searchDistribution(Item theItem);

    //通过物品名字，查找历史记录，并给出建议
    public Map<String,Object> intelligence(Item theItem);

    // 获取所有的 Item
    List<Item> getAllItems();

    // 更新 Item
    Map<String,Object> updateItem(Long id, Item item);

    //新建或者保存
    Item saveItem(Item item);

    // 更新所有同名Item
    Map<String,Object> updateItemByName(String name, String newCategory, String newName);

    //通过weight和currentstorage进行更新
    void updateByCurrentstorage(double weight, CurrentStorage currentStorage, User user);

    // 通过 ID 删除 Item
    Map<String,Object> deleteItem(Long id);
}

